// 内容脚本，在网页中执行，处理输入框检索和内容填充

// 存储当前页面的配置
let currentConfig = null;

// 监听来自后台脚本的消息
chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
  if (message.action === 'applyConfig') {
    currentConfig = message.config;
    applyInputConfig();
  }
});

// 应用输入框配置
function applyInputConfig() {
  if (!currentConfig || !currentConfig.inputSelectors) return;
  
  // 延迟执行，确保页面元素已加载
  setTimeout(() => {
    // 遍历配置的选择器
    currentConfig.inputSelectors.forEach(selectorConfig => {
      const { selector, value, delay = 0 } = selectorConfig;
      
      try {
        // 查找匹配的输入元素
        const elements = document.querySelectorAll(selector);
        
        if (elements.length > 0) {
          // 对每个匹配的元素应用值
          elements.forEach(element => {
            setTimeout(() => {
              // 根据元素类型设置值
              if (element.tagName === 'INPUT' || element.tagName === 'TEXTAREA') {
                // 设置输入框的值
                element.value = value;
                
                // 触发输入事件，确保网站的JavaScript能够检测到值的变化
                const inputEvent = new Event('input', { bubbles: true });
                element.dispatchEvent(inputEvent);
                
                const changeEvent = new Event('change', { bubbles: true });
                element.dispatchEvent(changeEvent);
              } else if (element.tagName === 'SELECT') {
                // 设置下拉框的值
                for (let i = 0; i < element.options.length; i++) {
                  if (element.options[i].value === value || element.options[i].text === value) {
                    element.selectedIndex = i;
                    break;
                  }
                }
                
                const changeEvent = new Event('change', { bubbles: true });
                element.dispatchEvent(changeEvent);
              }
            }, delay);
          });
        }
      } catch (error) {
        console.error(`Quick Input Plugin: Error applying selector ${selector}`, error);
      }
    });
  }, 500); // 等待500ms确保页面元素已加载
}

// 页面加载完成后检查是否有配置需要应用
document.addEventListener('DOMContentLoaded', () => {
  // 通知后台脚本页面已加载
  chrome.runtime.sendMessage({ action: 'pageLoaded', url: window.location.href });
});